package com.fire.control.system.module.user.service;

import org.springframework.data.domain.Pageable;
import org.springframework.web.multipart.MultipartHttpServletRequest;

import com.fire.control.system.dto.UserDTO;
import com.fire.control.system.standard.BusinessInterfaceStandard;
import com.fire.control.system.support.protocol.comman.ResponseProtocol;
import com.fire.control.system.support.protocol.duty.DutyRequestProtocol;
import com.fire.control.system.support.protocol.sys.SystemRequestProtol;
import com.fire.control.system.support.protocol.user.UserRequestProtocol;

public interface IUserService extends BusinessInterfaceStandard<UserRequestProtocol, ResponseProtocol> {
     //获取用户详细信息
	public ResponseProtocol getUserDetail(UserRequestProtocol requestProtocol,UserDTO user);
   	
	//修改个人资料
	public ResponseProtocol updateUserInfo(UserRequestProtocol requestProtocol,UserDTO user);
	
	//发送验证码
	public ResponseProtocol sendSms(UserRequestProtocol requestProtocol);
	
	//校验电话号码
	public ResponseProtocol validateTelphoneNumber(UserRequestProtocol requestProtocol,UserDTO user);
	
	//修改密码
	public ResponseProtocol modifyPassword(SystemRequestProtol requestProtocol,UserDTO user);
	
	//上传头像
	public ResponseProtocol uploadUserIcon(MultipartHttpServletRequest request,UserDTO user);
	//获得工作记录
	public ResponseProtocol workRecord(DutyRequestProtocol requestProtocol,Pageable p, UserDTO user);
	
	/**
	 * @author liuxincheng
	 * @Title: getCurrentRoles
	 * @Description: TODO(获取当前登陆人员的所属角色)
	 * @param @param requestProtocol
	 * @param @param user
	 * @param @return    设定文件
	 * @return ResponseProtocol    返回类型
	 * @throws null
	 */
	public ResponseProtocol getCurrentRoles(SystemRequestProtol requestProtocol,UserDTO user);
	/**
	* @Title: saveUserGetuiInfo
	* @Description: TODO(新增或修改用户个推信息)
	* @author wanbo
	* @date  2017年6月29日 下午6:30:03
	* @param cid
	* @param userId
	* @return
	*/
	public int saveUserGetuiInfo(String cid,String userId);
	
	/**
	* @Title: createUserToken
	* @Description: TODO(创建或更新用户token)
	* @author wanbo
	* @date  2017年7月1日 下午4:44:11
	* @param userId
	*/
	public String createUserToken(String userId);
	
	/**
	* @Title: getUserToken
	* @Description: TODO(获取用户token)
	* @author wanbo
	* @date  2017年7月1日 下午4:57:14
	* @param userId
	* @return
	*/
	public String getUserToken(String userId);
	
	
	/**
	* @Title: getUserInfo
	* @Description: TODO(获取用户信息)
	* @author wanbo
	* @date  2017年7月1日 下午6:09:23
	* @param uid
	* @return
	*/
	public UserDTO getUserInfo(String userId);
}
